About
___________________________________________________________________

SPZ Archive Tool is a program to edit WAD, PAK, and ZIP/PK3 files. 
It is geared towards ZDoom/GZDoom.
The program is written in Visual C# w/ .NET framework 4.7.2 and CLR 4.0



Main Functionality
___________________________________________________________________

- Tabbed Interface
- Lump Rearrangement/Copy/Paste/Delete/Rename/Replace/Insert Marker
- Cross-Format Import/Merge/Copy/Paste Lumps
- Create/Extract of ZIP/PK3 with or without a directory structure
- Display of Lumps
	- Standard Hexadecimal/Byte/Char (with Custom Line Break Frequency)
	- Doom Format Patches/Sprites/Flats/Palettes (with Custom Zoom)
	- Map Formats Doom, Hexen, UDMF (with or without nodes) (Can Move/Scale Maps w/ Mouse)
	- Common Formats BMP/JPEG/PNG/GIF/TIFF/ICO
	- Audio playback of .WAV lumps
- Drag and Drop Raw-Data files
- Import/Merge Raw-Data/WAD/PAK/ZIP
- Export Raw Data and Images/Maps (with custom zoom and transparency to BMP/JPEG/PNG/GIF/TIFF/ICO)
- Text Editor (w/ Syntax Highlighting for various lumps)
- Automatic File Backup
- Recently Opened Files Menu
- Find (Next/Previous) Lump and Jump to Lump Number


Known Issues
___________________________________________________________________
- It is possible for the map offsetting variables to overflow. It will show the "Error Image" if this happens. This is what the 'Reset Map Variables' menu item is for.
- Going back and forth with the list side can cause some GUI problems. It is recommended to only use one side.
- GIF files have an issue with the palette looking bad when saved


Features to Implement (hopefully)
___________________________________________________________________

- Embedded Editing of .WAD inside of PAK/ZIP
- Support for tall patches
- TEXTUREx/PNAMES editor w/ mass importing and texture scaling
- Sprite Offset Editor
- PLAYPAL editor

- more progress bars





History
___________________________________________________________________

v2.2.1 - 
	Fixed: Another quick bug fix release! The D64 directory was being parsed properly but because of a missing offset it was parsing the wrong addresses!

v2.2 -
	Added: Ability to open the Doom 64 IWAD from the v1.1 N64 ROM
	Fixed: Another palette problem when loading a ZIP and a "PLAYPAL" or "gfx/palette.lmp" was not found

v2.1.1 - 
	Fixed: Whoops! I accidentally deleted the palette data! Also, when opening a ZIP/PK3, the palette data wasn't being read and this caused a crash!

v2.1 -
	Added: Drag-and-Drop raw data files onto the entry list. Features highlighting on the currently selected item in the list view.
	Added: Option to have the list view on either the left or right side. Note that this only applies to new tab pages including when the program is started. Also note that going back and forth with the list side can cause some GUI problems. It is recommended to only use one side.
	Added: Tab Options: 'Close Other Tabs", "Close Tabs to Left", "Close Tabs to Right". Also, these functions are now accessable through the context menu for the tab control.
	Added: A simple 'edit' context menu for the list views.
	Changed: No more 'tab occupied' messages because the program will now loop until it finds or creates an empty tab.
	Fixed: If the initialization file did not fully load properly it wasn't possible to write a new corrected one because the stream didn't close.


v2.0 - 
	Added: Syntax Highlighting for many plain text lumps (MAPINFO, DECORATE, ZSCRIPT, etc.). Some parts of the highlighting code can be disabled by the user through a checked list box. This is saved to the config file. The typing refresh delay can be adjusted between 1 second and 60 seconds. The regular expressions part of the code is multi-threaded to maximize speed.
	Added: Progress bar windows for many of the functions in the program. Includes Opening, Saving, Importing, and Syntax-Highlighting
	Fixed: Inserting WAD/PAK/ZIP/Raw-Data into with only one item present would cause a crash
	Fixed: Selecting an item above a map marker (in image mode) would cause the map to be displayed no matter how far above the item was.
	Fixed: Closing a tab on a list view which has a selected index greater than the bounds of the list in the next tab caused a crash.
	Fixed: Inserting a marker only worked on the first tab page and it also had other strange bugs. Inserting a marker without a list item being selected would cause a crash.
	Fixed: Rescanning the map format didn't update the status bar.
	Changed: Removed an array that was used for keeping track of entry names. This was to eliminate confusion about potential 'out of sync' errors with the ListView. This lead to a large rewriting, debugging, and improvement of many of the functions in the program. This is why I declared that the version is 2.0 instead of 1.2
	Changed: Reworked the 'find lump' feature so that it uses regular expressions. It now can search for multiple lumps by using the bitwise or '|'. Also, all matches are highlighted in yellow. The find next/previous functionality works as a loop now so that it will go to the start/end of the list automatically. There is now a menu item to clear all matches.
	Changed: Closing the program with the X-Button will now also update the configuration file
	Changed: Using the copy feature would cause all selected items to deselect. For ease of use, it now falls back to the first selected item.
	Changed: Creating a new WAD/PAK/ZIP will send focus to the list


v1.1 - 
	Fixed: A major bottleneck in the 'Save WAD' and 'Save PAK' functions. They are running at maximum speed now! Also, they are threaded because I tried to increase speed that way.
	Added: "Replace Lump" function  (I use this for updating the BEHAVIOR lump)
	Changed: Updated to x64-bit and using 'optimize code' feature
	Fixed: Insert_Raw_Data() wasn't using Begin/End Update functions on the ListView
	Fixed: Saving a .ZIP didn't update the tab control text


v1.0 - 
	First Release!










